package sgeb;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 * @file Partido.java
 * @brief Clase Partido
 * @author Joaquín Ollero García
 * @date 22 de mayo del 2013
 * @version 0.1
 */
public class Partido {
    
    private int equipoLocalID;
    private int equipoVisitanteID;
    private Date fecha;
    private String incidencias;
    private int marcadorLocal;
    private int marcadorVisitante;
    private int partidoID;
    
    public Partido(int partidoID){
        this.partidoID = partidoID;
    }
    
    public Partido(int equipoLocalID, int equipoVisitanteID, Date fecha){
        this.equipoLocalID = equipoLocalID;
        this.equipoVisitanteID = equipoVisitanteID;
        this.fecha = fecha;
    }
    
    // Métodos Get
    //@brief Devuelve la fecha del partido
    public Date getFecha(){
        return this.fecha;
    }
    
    //@brief Devuelve las incidencias del partido
    public String getIncidencias(){
        return this.incidencias;
    }
    
    //@brief Devuelve el marcador del partido
    /*public int[] getMarcador(){
        return this.marcadorLocal;
        return this.marcadorVisitante;
    }*/
    
    // Métodos Set
    //@brief Asigna la fecha del partido
    public void SetFecha(Date fecha){
        this.fecha = fecha;
    }
    
    //@brief Asigna las incidencias del partido
    public void SetIncidencias(String incidencias){
        this.incidencias = incidencias;
    }
    
    //@brief Asigna el resultado del partido
    public void setResultado(int marcadorLocal, int marcadorVisitante){
        this.marcadorLocal = marcadorLocal;
        this.marcadorVisitante = marcadorVisitante;

    }
    
    // Otros métodos
    //@brief Da de alta un partido
    public boolean altaPartido(){
        
        conectar cc = new conectar();
	Connection cn = cc.conexion();
	String sql = "INSERT INTO partido (equipoLocalID,equipoVisitanteID,fecha,incidencias,marcadorLocal,marcadorVisitante) VALUES (?,?,?,?,?,?)";

	try {
            java.sql.Date sqlfecha = new java.sql.Date(fecha.getTime());
	    PreparedStatement pst = cn.prepareStatement(sql);
	    pst.setInt(1, this.equipoLocalID);
            pst.setInt(2, this.equipoVisitanteID);
            pst.setDate(3, sqlfecha);
            pst.setString(4, this.incidencias);
            pst.setInt(5, this.marcadorLocal);
            pst.setInt(6, this.marcadorVisitante);

	    int n = pst.executeUpdate();
	    if (n > 0) {
		JOptionPane.showMessageDialog(null, "partido guardado");
		return true;
	    }
	} catch (SQLException ex) {
	    Logger.getLogger(Equipo.class.getName()).log(Level.SEVERE, null, ex);
	}
	return false;
        
    }
    
    //@brief Da de baja un partido
    public boolean bajaPartido(){
        
        conectar cc = new conectar();
	Connection cn = cc.conexion();
	String sql = "delete from partido where partidoID = ?";
	try {
	    PreparedStatement pst = cn.prepareStatement(sql);
	    pst.setInt(1, this.partidoID);
	    int n = pst.executeUpdate();
	    if (n > 0) {
		JOptionPane.showMessageDialog(null, "partido borrado ");
		return true;
	    }
	} catch (SQLException ex) {
	    Logger.getLogger(Partido.class.getName()).log(Level.SEVERE, null, ex);
	}
	return false;
    }
    
}
